import 'jquery';
import marked from 'marked';
import hljs from 'highlight.js/lib/highlight';

// marked插件的基本配置
marked.setOptions({
  // 渲染模式
  renderer: new marked.Renderer(),
  // Github 标准markdown
  gfm: true,
  // 支持表格语法
  tables: true,
  // 允许回车换行
  breaks: true,
  // 尽可能地兼容 markdown.pl的晦涩部分。不纠正原始模型任何的不良行为和错误。
  pedantic: false,
  // 对输出进行过滤（清理），将忽略任何已经输入的html代码（标签）
  sanitize: false,
  // 使用比原生markdown更时髦的列表。 旧的列表将可能被作为pedantic的处理内容过滤掉.
  smartLists: true,
  // 使用更为时髦的标点，比如在引用语法中加入破折号。
  smartypants: false,
  // If true, emit self-closing HTML tags for void elements (<br/>, <img/>, etc.) with a "/" as required by XHTML.
  xhtml: true,
  highlight: function (code, lang) {
    if (lang && hljs.getLanguage(lang)) {
      return hljs.highlight(lang, code, true).value;
    } else {
      return hljs.highlightAuto(code).value;
    }
  }
});

// let kdjfk = marked.block;

/**
 * @FileName: Markdown
 * @Author: mazaiting
 * @Date: 2018/8/14
 * @Description:
 */
export default class Markdown {
  static render (src, opt, callback) {
    let html = marked(src).toString();
    // 渲染文档中代码部分，初始化监听，在main.js中注册
    hljs.initHighlightingOnLoad();
    return html;
  }
}
